(when (>= (javaVersion T) (1 7) )
  (de functionalMethodType (Class)
    (thread Class
      (java "getMethods")
      arrayAsList
      (map+ filter
        (quote (Method)
          (thread Method
            (java "getName")
            java
            (= (functionalMethodName Class) ) ) ) )
      car
      ((quote (Method)
        (java (lookup) "unreflect" Method) ) )
      (java "type")
      (java "dropParameterTypes" 0 1) ) ) )